<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
			  targetNamespace="http://www.example.org/shiporderExample"
			  xmlns:so="http://www.example.org/shiporderExample"
			  xmlns:adr="http://www.example.org/address"
			  elementFormDefault="qualified">

	<xs:import namespace="http://www.example.org/address" schemaLocation="address.xsd"/>
	
	
	<xs:simpleType name="stringtype">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>

	<xs:simpleType name="inttype">
		<xs:restriction base="xs:positiveInteger"/>
	</xs:simpleType>

	<xs:simpleType name="dectype">
		<xs:restriction base="xs:decimal"/>
	</xs:simpleType>

	<xs:simpleType name="orderidtype">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9]{6}"/>
		</xs:restriction>
	</xs:simpleType>

	<xs:complexType name="shiptotype">
		<xs:complexContent>
			<xs:extension base="adr:address">
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:complexType name="itemtype">
		<xs:sequence>
			<xs:element name="artist" type="so:stringtype" minOccurs="0"/>
			<xs:element name="title" type="so:stringtype"/>
			<xs:element name="note" type="so:stringtype" minOccurs="0"/>
			<xs:element name="quantity" type="so:inttype"/>
			<xs:element name="price" type="so:dectype"/>
		</xs:sequence>
	</xs:complexType>

	<xs:complexType name="shipordertype">
		<xs:sequence>
			<xs:element name="orderperson" type="so:stringtype"/>
			<xs:element name="shipto" type="so:shiptotype"/>
			<xs:element name="item" maxOccurs="unbounded" type="so:itemtype"/>
		</xs:sequence>
		<xs:attribute name="orderid" type="so:orderidtype" use="required"/>
	</xs:complexType>

	<xs:element name="shiporder" type="so:shipordertype"/>

</xs:schema>